package com.ruoyi.fun.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.fun.domain.HiolabsRegion;

/**
 * 地区Mapper接口
 * 
 * @author ruoyi
 * @date 2025-01-16
 */
public interface HiolabsRegionMapper 
{
    /**
     * 查询地区
     * 
     * @param id 地区主键
     * @return 地区
     */
    public HiolabsRegion selectHiolabsRegionById(Long id);

    /**
     * 查询地区列表
     * 
     * @param hiolabsRegion 地区
     * @return 地区集合
     */
    public List<HiolabsRegion> selectHiolabsRegionList(HiolabsRegion hiolabsRegion);

    /**
     * 根据类型查询地区列表
     * 
     * @param type 地区类型(1:省份 2:城市 3:区县)
     * @return 地区集合
     */
    public List<HiolabsRegion> selectHiolabsRegionListByType(@Param("type") Integer type);

    /**
     * 根据父级ID查询地区列表
     * 
     * @param parentId 父级地区ID
     * @return 地区集合
     */
    public List<HiolabsRegion> selectHiolabsRegionListByParentId(@Param("parentId") Long parentId);

    /**
     * 根据类型和父级ID查询地区列表
     * 
     * @param type 地区类型
     * @param parentId 父级地区ID
     * @return 地区集合
     */
    public List<HiolabsRegion> selectHiolabsRegionListByTypeAndParentId(@Param("type") Integer type, @Param("parentId") Long parentId);

    /**
     * 新增地区
     * 
     * @param hiolabsRegion 地区
     * @return 结果
     */
    public int insertHiolabsRegion(HiolabsRegion hiolabsRegion);

    /**
     * 修改地区
     * 
     * @param hiolabsRegion 地区
     * @return 结果
     */
    public int updateHiolabsRegion(HiolabsRegion hiolabsRegion);

    /**
     * 删除地区
     * 
     * @param id 地区主键
     * @return 结果
     */
    public int deleteHiolabsRegionById(Long id);

    /**
     * 批量删除地区
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHiolabsRegionByIds(Long[] ids);
}